From: Cosimo Cecchi Date: Thu, 11 Oct 2018 01:26:31 +0000 (-0700) Subject: notificationDaemon: use different reason when replacing notification X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~897^2~1^2~51 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=a98ed08a549bcc2fdc0b9c1b50edd3d83dd3c06d;p=gnome-shell.git notificationDaemon: use different reason when replacing notification Differently from the fd.o notifications, Gtk notifications do not have a mechanism to update themselves. Instead, when a new notification is received for an ID already known to the notification daemon, the old notification is dismissed and a replaced with a new one. Currently though, there is no way to distinguish a notification that was dismissed because of an user interaction, or because it was replaced. That is an useful piece of information, so add a new value to the NotificationDestroyedReason enum to account for it. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/258 --- diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 84681569e..f8e2f0b9f 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -50,12 +50,15 @@ var State = { // These reasons are useful when we destroy the notifications received through // the notification daemon. We use EXPIRED for notifications that we dismiss // and the user did not interact with, DISMISSED for all other notifications -// that were destroyed as a result of a user action, and SOURCE_CLOSED for the -// notifications that were requested to be destroyed by the associated source. +// that were destroyed as a result of a user action, SOURCE_CLOSED for the +// notifications that were requested to be destroyed by the associated source, +// and REPLACED for notifications that were destroyed as a consequence of a +// newer version having replaced them. var NotificationDestroyedReason = { EXPIRED: 1, DISMISSED: 2, - SOURCE_CLOSED: 3 + SOURCE_CLOSED: 3, + REPLACED: 4 }; // Message tray has its custom Urgency enumeration. LOW, NORMAL and CRITICAL diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 4d2be44ed..609e56253 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -690,7 +690,7 @@ var GtkNotificationDaemonAppSource = new Lang.Class({ this._notificationPending = true; if (this._notifications[notificationId]) - this._notifications[notificationId].destroy(); + this._notifications[notificationId].destroy(MessageTray.NotificationDestroyedReason.REPLACED); let notification = this._createNotification(notificationParams); notification.connect('destroy', () => {